<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>深浅拷贝</title>
</head>

<body>
    <script>
        // function deepClone(data) {
        //     // 主要考虑数组和对象
        //     // 1. 先判断是否为数组，如果是数组我们就要声明一个新的空数组把原先的值复制进去
        //     // 2. 对象同理                                    
        //     if (Array.isArray(data)) {
        //         var result = [];
        //         for (var i = 0; i < data.length; i++) {
        //             result.push(deepClone(data[i]));
        //         }
        //     } else if (typeof data === 'object') {
        //         var result = {};
        //         for (var key in data) {
        //             result[key] = deepClone(data[key]);
        //         }
        //     } else {
        //         var result = data;
        //     }
        //     return result;
        // }

        // var obj = {
        //     name: 'sss',
        //     persons: [{
        //         nas: 'sssdsad'
        //     }, {
        //         dadasd: 'rewrwrwe'
        //     }]
        // }
        // var obj1 = deepClone(obj);
        // obj1.persons[0].nas = 'wwwww';
        // console.log(obj, obj1);

        // var n = 100;

        // function sum(n) {
        //     if (n == 1) {
        //         return 1
        //     } else {
        //         return n + sum(n - 1);
        //     }
        // }
        // console.log(sum(n));

        // var a = "apple";

        // function fn() {
        //     console.log(a);
        //     var a = "angle";
        //     console.log(ss());

        //     function ss() {
        //         return a;
        //     }
        // }
        // fn();

        // var arr = [1, 2, 3, 4, 2, 5, 2, 6, 7, 8, 9, 0, 1, 4, 3, 2];
        // var newarr = [];
        // for (var i = 0; i < arr.length; i++) {

        //     if (arr[i] == 2) {
        //         newarr.push(arr[i]);
        //         newarr.push('哈哈')
        //     } else {
        //         newarr.push(arr[i]);
        //     }
        // }
        // console.log(newarr);

        // var arr = [1, 2, 3, 9, 5, 2, 3, 7, 8, 8, 9, 9];

        // for (var i = 0; i < arr.length; i++) {
        //     for (var j = i + 1; j < arr.length; j++) {
        //         if (arr[i] == arr[j]) {
        //             arr.splice(j, 1);
        //             j--
        //         }
        //     }
        // }
        // console.log(arr);

        // var str = '牛奶';

        // function fz(str) {
        //     str = str.split('').reverse().join('');
        //     return str;
        // }
        // console.log(fz(str));

        // var arr = [
        //     "b",
        //     "a",
        //     "c",
        //     "a",
        //     "b",
        //     "b",
        //     "b",
        //     "c",
        //     "c",
        //     "a",
        //     "c",
        //     "a",
        //     "a",
        //     "a",
        //     "b",
        //     "c",
        // ];
        // var obj = {};
        // for (var i = 0; i < arr.length; i++) {
        //     if (obj[arr[i]]) {
        //         obj[arr[i]] += 1
        //     } else {
        //         obj[arr[i]] = 1;
        //     }
        // }
        // console.log(obj);

        // var str = "哈哈哈哈哈哈哈嘻嘻嘻嘻嘻嘻嘻嘻嘿嘿嘿嘿噢噢噢噢噢噢"
        // var newstr = str.split('');
        // var obj = {};
        // for (var i = 0; i < newstr.length; i++) {
        //     if (obj[newstr[i]]) {
        //         obj[newstr[i]] += 1
        //     } else {
        //         obj[newstr[i]] = 1;
        //     }
        // }
        // console.log(obj);

        // 1、1、2、3、5、8、13、21

        // function bo(n) {
        //     if (n === 0 || n === 1) {
        //         return 1;
        //     } else {
        //         return bo(n - 1) + bo(n - 2)
        //     }
        // }
        // console.log(bo(2));

        // setInterval(sj, 1000);

        // function sj() {
        //     var newdata = new Date();
        //     var n = newdata.getFullYear();
        //     var y = newdata.getMonth() + 1;
        //     var r = newdata.getDate();
        //     var x = newdata.getHours();
        //     var f = newdata.getMinutes();
        //     var m = newdata.getSeconds();
        //     y = y < 10 ? '0' + y : y;
        //     r = r < 10 ? '0' + r : r;
        //     x = x < 10 ? '0' + x : x;
        //     f = f < 10 ? '0' + f : f;
        //     m = m < 10 ? '0' + m : m;
        //     console.log(`${n}年${y}月${r}日${x}:${f}:${m}`);
        // }

        // function ss(data) {
        //     if (Array.isArray(data)) {
        //         var result = [];
        //         for (var i = 0; i < data.length; i++) {
        //             result.push(ss(data[i]));
        //         }
        //     } else if (typeof data === 'object') {
        //         var result = {};
        //         for (var key in data) {
        //             result[key] = ss(data[key]);
        //         }
        //     } else {
        //         var result = data;
        //     }
        //     return result;
        // }

        // var obj = {
        //     name: 'sss',
        //     persons: [{
        //         nas: 'sssdsad'
        //     }, {
        //         dadasd: 'rewrwrwe'
        //     }]
        // }
        // var obj1 = ss(obj);
        // obj1.persons[0].nas = 'wwwww';
        // console.log(obj, obj1);

        // var arr = [1, 2, 3, 4, 2, 5, 2, 6, 7, 8, 9, 0, 1, 4, 3, 2];
        // var newarr = [];
        // for (var i = 0; i < arr.length; i++) {
        //     if (arr[i] == 2) {
        //         newarr.push(arr[i], '哈哈')
        //     } else {
        //         newarr.push(arr[i]);
        //     }
        // }
        // console.log(newarr);
    </script>
</body>

</html>